#ifndef _MUTEX_HPP_
#define _MUTEX_HPP_
#include <pthread.h>
#include <cstdlib>

// PHAT: n'expose pas ca dans le header.
typedef enum eMutexState
{
    eLock = 0,
    eUnlock
};

// PHAT: ca se copie tu des mutex?
class Mutex
{
	public:
		Mutex(void);
		~Mutex(void);
		bool Lock(void);
		bool UnLock(void);
		bool TryLock(void); // PHAT: a quoi ca sert cette fonction?
		eMutexState GetState(void); // eMutexState ne devrait pas etre connu de l'exterieur.

	private:
		eMutexState State;
		pthread_mutex_t mutex;
};


#endif
